<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .wrap {
            margin-bottom: 40px;
        }

      
    </style>
</head>

<body>
    <!-- HTML属性的属性名只能是小写,如果写成大写会自动转化为小写 -->

    <div id="app">
        <!-- checkbox 和 radio 使用 checked 属性 和 change 事件 -->
        <div class="wrap">
            <h2>单个复选框(是否选中)</h2>
            <p>
                <label>
                    <input type="checkbox" v-model="isAgree">
                    是否同意xxx协议?
                </label>
            </p>
            <p>isAgree: {{isAgree}}</p>
            <!-- <p>isAgree: {{isAgree?"yes":"no"}}</p> -->
        </div>


        <!-- 用户可以通过 true-value="xxx" false-value="xxx"  自定义选中/未选中时的值-->
        <div class="wrap">
            <h2>单个复选框值绑定</h2>
            <p>
                <label>
                    <input type="checkbox" v-model="isOk" true-value="yes" false-value="no">
                    是否同意xxx协议?
                </label>
            </p>
            <p>isOk: {{isOk}}</p>
        </div>
        
        
      


       


    </div>
</body>
<script>

    /* 
        双向数据绑定
            1. 数据监听 当数据改变后,  重新更新视图
            2. DOM监听  当视图内容改变后,也会将其更新到数据    


        v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇，但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据，

        v-model 会自动根据控件类型, 自动选取正确的属性和方法来更新元素
        v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件：

            text 和 textarea 元素使用 value 属性 和 input 事件；
            checkbox 和 radio 使用 checked 属性 和 change 事件；
            select 字段将 value 作为 prop 并将 change 作为事件。

       
    */




    var vm = new Vue({
        el: "#app",
        data: {
            isAgree:false,

            isOk:"",
            

        },
        methods: {

        }

    })

</script>

</html>